package jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class GetDBDate {
	public String[][] getAllData(){
		String[][] arr = null;
		 try {
			 //要支持多个数据库的话，应该传一个数据库类型过来，方法好写，(Stirng DBType,String sql)
			 //获取连接可又单独写一个Util类
		   Class.forName("com.mysql.jdbc.Driver");//数据库驱动
		   String url = "jdbc:mysql://localhost:3306/test";//数据库链接地址
		   String user = "demp";//用户名
		   String password = "demp";//密码
		   Connection conn = DriverManager.getConnection(url, user, password);//建立connection
		   Statement stmt = conn.createStatement();
		   conn.setAutoCommit(false);// 更改jdbc事务的默认提交方式 

		   String sql = "select * from score";//查询语句,如果是个工具类sql应该是传过来的String
		   ResultSet rs = stmt.executeQuery(sql);//得到结果集
		   ResultSetMetaData metaData = rs.getMetaData();//获取结果集元数据
		   
		   //
		   int totalCol = metaData.getColumnCount();//获得表中总的列数
		   rs.last();//将游标放到最后一行
		   int totalRow = rs.getRow();//获得最后一行的索引，也就是总的行数
		   rs.beforeFirst();//因为后面还要用rs.next所以要将游标放到最开始行
		   
		   conn.commit();//事务提交
		   conn.setAutoCommit(true);// 更改jdbc事务的默认提交方式 

		   arr=new String[totalRow][totalCol];//创建行列的数组
		   int i = 0;
		   while(rs.next()){
			   for(int j=0;j<totalCol;j++){
				   arr[i][j] = rs.getString(j+1);//获得这一行的第几列数据
			   }
			   i++;
		   }
		   
		  } catch (Exception e) {
		   // TODO Auto-generated catch block   
		   e.printStackTrace();
		  }
		  return arr;
		}
}

